//一年中的第几天
/*给你一个字符串 date ，按 YYYY-MM-DD 格式表示一个 现行公元纪年法 日期。返回该日期是当年的第几天。
date.length == 10
date[4] == date[7] == '-'，其他的 date[i] 都是数字
date 表示的范围从 1900 年 1 月 1 日至 2019 年 12 月 31 日*/
int string_to_int(char* arr) { return (arr[0] - '0') * 10 + (arr[1] - '0'); }
int dayOfYear(char* date) {
    int month[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    int sum_month[13] = {0,   31,  59,  90,  120, 151, 181,
                         212, 243, 273, 304, 334, 364};
    int size = strlen(date);
    int sum = 0;
    // 字符月份改为整数月份，加上前面月份的天数，再加上当前月份的天数。
    sum += sum_month[string_to_int(date + 5) - 1];
    sum += string_to_int(date + 8);
    // 判断是否为闰年
    int year = string_to_int(date) * 100 + string_to_int(date + 2);
    if (string_to_int(date + 5) > 2 &&
        ((year % 400 == 0) || (year % 100 != 0 && year % 4 == 0)))
        sum++;
    return sum;
}



//反转单词前缀
/*给你一个下标从 0 开始的字符串 word 和一个字符 ch 。找出 ch 第一次出现的下标 i ，反转 word 中从下标 0 开始、直到下标 i 结束（含下标 i ）的那段字符。如果 word 中不存在字符 ch ，则无需进行任何操作。

例如，如果 word = "abcdefd" 且 ch = "d" ，那么你应该 反转 从下标 0 开始、直到下标 3 结束（含下标 3 ）。结果字符串将会是 "dcbaefd" 。
返回 结果字符串 。
1 <= word.length <= 250
word 由小写英文字母组成
ch 是一个小写英文字母
*/
void reverse_string(char* arr, int left, int right) {
    while (left < right) {
        char temp = arr[left];
        arr[left] = arr[right];
        arr[right] = temp;
        left++;
        right--;
    }
}
char* reversePrefix(char* word, char ch) {
    // 找到字符所在位置
    int i = 0;
    int size = strlen(word);
    for (; i < size; i++) {
        if (word[i] == ch) { // 反转字符串
            reverse_string(word, 0, i);
            break;
        }
    }
    return word;
}



//得到 0 的操作数
/*给你两个 非负 整数 num1 和 num2 。

每一步 操作 中，如果 num1 >= num2 ，你必须用 num1 减 num2 ；否则，你必须用 num2 减 num1 。

例如，num1 = 5 且 num2 = 4 ，应该用 num1 减 num2 ，因此，得到 num1 = 1 和 num2 = 4 。然而，如果 num1 = 4且 num2 = 5 ，一步操作后，得到 num1 = 4 和 num2 = 1 。
返回使 num1 = 0 或 num2 = 0 的 操作数 。
0 <= num1, num2 <= 10^5*/
int countOperations(int num1, int num2) {
    int count = 0;
    while (num1 && num2) {
        if (num1 >= num2) {
            num1 -= num2;
        } else {
            num2 -= num1;
        }
        count++;
    }
    return count;
}